#ifndef __BUOLA_SCENE_AUTO_FORWARD_H__
#define __BUOLA_SCENE_AUTO_FORWARD_H__

#include <buola/buola.h>

namespace buola { namespace scene {

//types in scene
class CNode;
typedef intrusive_ptr<CNode> PNode;

class CCamera;
typedef intrusive_ptr<CCamera> PCamera;

class CPerspectiveCamera;
typedef intrusive_ptr<CPerspectiveCamera> PPerspectiveCamera;

class CController;
typedef intrusive_ptr<CController> PController;

class CSkeleton;
typedef intrusive_ptr<CSkeleton> PSkeleton;
class CBone;
typedef intrusive_ptr<CBone> PBone;

class CMesh;
typedef intrusive_ptr<CMesh> PMesh;

class CScene;
typedef intrusive_ptr<CScene> PScene;

class CObject;
typedef intrusive_ptr<CObject> PObject;
class CGeode;
typedef intrusive_ptr<CGeode> PGeode;

class CTransform;
typedef intrusive_ptr<CTransform> PTransform;
class CRTTransform;
typedef intrusive_ptr<CRTTransform> PRTTransform;
class CMatTransform;
typedef intrusive_ptr<CMatTransform> PMatTransform;
class CRevolutionJoint;
typedef intrusive_ptr<CRevolutionJoint> PRevolutionJoint;
class CPrismaticJoint;
typedef intrusive_ptr<CPrismaticJoint> PPrismaticJoint;
class CBoneTransform;
typedef intrusive_ptr<CBoneTransform> PBoneTransform;
class CRigidBody;
typedef intrusive_ptr<CRigidBody> PRigidBody;
class CSoftBody;
typedef intrusive_ptr<CSoftBody> PSoftBody;
class CWorld;
typedef intrusive_ptr<CWorld> PWorld;

class CBone;
class CIndexData;
class CVertexData;
struct CRenderContext;

class CSceneView;
typedef intrusive_ptr<CSceneView> PSceneView;

class CImageRenderer;

class CTechnique;
typedef intrusive_ptr<CTechnique> PTechnique;

class CMaterial;
typedef intrusive_ptr<CMaterial> PMaterial;

class CMeshBuilder;

/*namespace scene*/ } /*namespace buola*/ }

#endif
